AWS Directory Serviceを使ってAWSアカウントを簡単に切り替える方法
こんにちは、せーのです。今日は最近かなりお世話になっているSwitch Accountの新しいやり方をご紹介します。この方法をマスターすると社内で使っているWindowsのActive Directoryをそのまま使用して開発者グループはこのアカウントのEC2とRDSのみ使える、経理はこちらのアカウントのCloudWatchが参照できる、等簡単にアカウントを超えた権限を割り当てることができるようになります。
とても便利なSwitch Account
AWSを業務で使っている方は本番、ステージングやサービス毎に複数のAWSアカウントを持っている方も珍しくありません。そのような場合にAWSアカウントを切り替えて作業するにはログアウト => ログインを繰り返さなくてはならず、昨今はセキュリティも強化されていてMFA必須になってきていますので何回もログアウト => ログインを繰り返しながらの作業はとても手間になります。 そこで最近はIAM Roleを使った[Switch Account]という機能が使えるようになり、ログアウトを繰り返す必要はなくなりました!私もしょっちゅう使っております。詳しくはこちらの記事を御覧ください。
- 【新機能】IAMユーザーをManagement Consoleからクロスアカウントで色々なRoleにスイッチする事ができるようになりました。
- 【小ネタ】複数のSwitch Roleでのクロスアカウントアクセスをブラウザのブックマークで管理する
今回はAWS Directory ServiceのSimple ADを使いフェデレーションユーザが簡単にアカウントを切り替える方法をご紹介します。
方法
Simple ADを作成する
それでは早速やっていきましょう。まずはDirectory Serviceを使ってActive Directoryを作成していきます。Management ConsoleからDirectory Serviceに行き、Simple ADを作成します。今回は[switchroletest.com]というドメイン名にしました。
Directoryの作成を待ちます。5分くらいでActiveになります。
作成したADにログインする
次に作成したDirectoryにログインしていきます。Simple ADを作成したVPCにEC2を立てます。Windows Server 2012 R2はSimple ADにてユーザーを作成できないバグがあるようなのでWindows Server 2012を選択します。
立てたEC2にてSimple ADドメインに参加します。詳しくはこちらの記事を参考にして下さい。ネットワーク設定のDNSにSimple ADで作成されたDNSサーバーIPを設定します。
コンピュータの変更よりSimple ADのドメインに参加して再起動します。
Simple ADのドメインにAdministratorにてログインします。
- ID : [ドメイン名]\Administrator
- PASS : [Simple AD作成時に登録したパスワード]
ADツールをインストールします。
Administrativeツール(Start画面にあります)から[Active Directory Users and Computers]を選択し、ユーザーを追加します。
今回はユーザーを2人追加してみます。[test1][test2]とします。パスワードはWindows Server 2012のパスワードポリシーに従って下さい。大文字、小文字、数字が入っていれば大体大丈夫でしょう。
これでEC2での作業はおしまいです。
Management Consoleからのアクセス許可を追加する
先程作成したSimple ADの詳細画面に移り、Management Consoleからのアクセスを許可します。画面下部に[Apps & Services]という欄があるのでそちらから設定します。
アクセスURLを設定する
画面中段くらいにあるアクセスURLに任意の文字列を入れてアクセスURLを設定します。一応シングルサインオンもつけときます。
ユーザー用のロールを追加する
先程作成したユーザーに対してアクセス権限を追加します。とりあえずPower Userをつけておきます。Management Consoleからのアクセス許可の横にある[Manage Access]というリンクをクリックします。
ロールの作成画面が出てきますのでロールをつけていきます。ここらへんは他のサービスのロールのつけかたと同じですね。
ロール名をつけて登録します。
ここからはDirectory Service独自の設定です。先程EC2にて作成したユーザーに対して権限をつけていきます。私の場合は[test1]と[test2]になります。
出来上がったロールを確認します。こんな感じになっていればOKです。これがスイッチ元の設定です。
スイッチ先のアカウントにクロスアカウントのロールを作成する
次にスイッチ先にクロスアカウントでアクセスする権限をもたせます。クロスアカウント先にてIAMロールを新規作成し、クロスアカウントアクセスの権限をつけます。ここらへんの作業はこの記事を参考にしてみて下さい。
ロール名をつけます。今回は[swroletest]としました。
アカウントIDを記入するときには「スイッチ元」、つまりDirectory Serviceが立ち上がっているアカウントIDを入力します。
今回はAdministrator権限をつけます。実用時にはこのアカウントにて操作させたい権限をつけるようにして下さい。
ロールをユーザーで絞る
作成したロールはスイッチ元のアカウントであれば誰でもスイッチできる状態なので、先程作ったユーザーのみスイッチできるように権限を絞ります。ロールを選択しポリシーを編集します。
ポリシーをユーザーで絞ります。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:userid": [ "*:test2", "*:test1" ] } } } ] }
これで設定は完了です。
疎通確認
最後にスイッチできるかどうか確認します。 Directory Serviceを通じてのアクセスは先程Directory Serviceで設定したアクセスURLを使います。
https://swroletest.awsapps.com/console
表示されたログイン画面にてユーザー、パスワードを入力してログインします。
あとはIAMユーザーでのスイッチと同じです。画面右上のアカウントの表示部分からSwitch Roleの画面を開くかスイッチ先で作成したロールのURLを叩きます。
表示名を決めてボタンをクリックするとスイッチ出来ます。
後はスイッチしたいアカウントにひたすらロールを設定していくのみです。
まとめ
いかがでしたでしょうか。今回はSimple ADで試しましたが、Directory Serviceは既存のActive Directoryと連結することも出来ますので、職場の特定のユーザーやグループにはこのアカウントの権現を与える、というような運用も可能になります。上手く使って正しい権限管理をしましょう。